// Detach new child.
if (w != null) {
w.removeFromParent();
}
// Remove old child.
if (w == widget) return;
// Detach new child.
w.removeFromParent();
// Remove old child.
if (widget != null) {